#ifndef _DEVICE_EXCUTE_H_
#define _DEVICE_EXCUTE_H_
#include "ParameterStoreDPT.h"
#include <stdint.h>
typedef enum
{
  DEVICE_EXCUTE_SHUNT = 0,
  DEVICE_EXCUTE_MOVE_NEW_APP_TO_LOCAL,
  DEVICE_EXCUTE_JUMP_APP,
  DEVICE_EXCUTE_ERROR

} DEVICE_EXCUTE_DPT;

/**
 * @breif: device excute
 * @param: led_flash_type：0：normal 1：error
 * @return: 0:success 1:fail
 * */
uint8_t device_excute_hard_init(uint8_t led_flash_type);

typedef unsigned char (*DEVICE_EXCUTE_HANDLER)(uint8_t *status);
uint8_t device_excute_shunt(uint8_t *status);
uint8_t device_excute_before_move_app_hard_init(uint8_t *status);

uint8_t device_excute_move_new_app_to_local(uint8_t *status);
uint8_t device_excute_jump_app(uint8_t *status);
uint8_t device_excute_error(uint8_t *status);

// uint8_t device_excute_wait_new_app_download_hard_init(uint8_t *status);
// uint8_t device_excute_wait_new_app_download(uint8_t *status);
// uint8_t device_excute_new_app_download_finished_and_check_download_app_crc(uint8_t *status);
void software_reboot(void);

#endif
